//Mon 01 Feb 2010 03:38:41 PM CST 
#include <iostream>
#include <string>
#include <vector>
#include <map>
//I don't know how to 那么我们可以预处理下每个数字的左右边界以及频数，那么在区间查询时根据这个可以计算出当前区间内，某个数的频数，想想是不是如此
//这样离散化操作后给定一个区间，那么区间中有哪些数，数的频率都确定下来了
using namespace std;

int N, Q;
int v[100000];
int start[100000];
int end[100000];
int count[100000];

int main()
{
	while(cin >> N && N)
	{
		cin >> Q;
		cin >> v[0];
		start[0] = 0;
		end[0] = 0;
		count[0] = 1;
		int cnt = 0;
		for(int i=1; i<N; i++)
		{
			str
			cin >> v[i];
			if(v[i] != v[i-1])
			{
				cnt++;
				start[cnt] = i;
				end[cnt] = i;
				count[cnt] = 1;
			}
			else
			{
				count[cnt]++;
				end[cnt]++;
			}
		}
//		for(int i=0; i<=cnt; i++)
//			cout << start[i] << ", " << count[i] << ", " << end[i] << endl;
//		cout << cnt << endl;
		int idx = 0;
		for(int i=0; i<N; i++)
		{
			if(i>=start[idx] && i<=end[idx])
				v[i] = count[idx];
		}
	}
		return 0;
}
